1. Field of the Invention
The present invention relates to a controller for controlling a position of a movable part of a machine by a servomotor.
2. Description of Related Art
Machines of a large size are generally subject to torsion, or a similar force, in a machine element located in between a motor for driving a machine's movable part and the machine's movable part, thereby causing the machine to have low rigidity. When the machine has low rigidity, the torsion element, or the similar force, has characteristics similar to a spring in which a torsion amount becomes larger in proportion to acceleration within a certain range. In some cases, the motor and the machine are connected to each other by spring engagement, or other possible similar connections. In this case, motion of the machine is delayed at the start of the machine motion, and the delay generates vibrations of the machine's movable part.
In such a large-scaled machine, a large position gain of a position loop can not be adopted in view of suppressing the vibrations of the machine's movable part, resulting in the delay in motion of the machine's movable part. For example, a machine tool of large size has a problem that the delay lowers its machining accuracy.
As a method for compensating the delay attributable to the low rigidity of the machine, there is a well-known method including the steps of adding the result obtained by multiplying an acceleration command value by the reciprocal number of collective longitudinal rigidity of a ballscrew driving system to the result obtained by multiplying the acceleration command value by the reciprocal number of collective torsion rigidity of the ballscrew driving system, multiplying this additional value by load moment of inertia to obtain a flexure compensation value, differentiating the flexure compensation value to obtain a flexure velocity compensation value, further differentiating the flexure velocity compensation value to obtain a torque compensation value, and adding the flexure compensation value, the flexure velocity compensation value and the torque compensation value to a position command value, a velocity command value and a torque command value, respectively, thus carrying out the flexure compensation of the ballscrew driving system (see JP 10-326114A for example).
In addition, there is another well-known method in which an offset amount proportional to the acceleration of a motion command is added to a velocity command obtained by position loop control to use the result as a velocity command to a velocity loop, thus compensating the delay corresponding to torsion that is attributable to the low rigidity (JP 3308656B, for example).